Multi-tiered software applications may include multiple integrated components with distinct and unique functionalities. The functionalities associated with some of the components may not be reusable between different tiers of the software application. Moreover, the complexity of the software application increases with the number of tiers and non-reusable components. In such a scenario, the complexity of the multi-tiered software applications may be reduced by providing a framework for designing components with functionalities that may be reusable between the multiple tiers. However, providing such a framework that integrates with the multiple-tiers of the software application to design reusable components and provide on demand functionality, may be challenging.